server: add max_body_bytes guard for HTTP request bodies #2012
+626
−31
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds a configurable request-body size cap to avoid unbounded
await request.body()buffering for MCP HTTP endpoints.Changes:
max_body_bytes(default:1_000_000,Nonedisables) to:StreamableHTTPServerTransportStreamableHTTPSessionManager+Server.streamable_http_app()plumbingMCPServer.streamable_http_app()/MCPServer.run(..., transport='streamable-http')passthroughSseServerTransportMCPServer.sse_app()/MCPServer.run(..., transport='sse')passthrough/registerhandler viaClientRegistrationOptions.max_body_bytes413 Payload Too Large(withConnection: close) when exceeded./register.Local checks:
uv run ruff check src testsuv run pyrightuv run pytest -q tests/server/test_streamable_http_manager.py tests/server/test_sse_max_body_bytes.py tests/server/auth/test_error_handling.py